/**
 * Created with IntelliJ IDEA
 * Description
 * User:user
 * Date:2021-10-20
 * Time:8:35
 */

//2021.10.19回顾
    //面向对象和面向过程
    //洗衣服 买手机的例子
    //找对象 创建对象 使用对象
    //对象是由类产生的，类相当于是图纸，由类实例化产生了对象称为对象的实例化
    //一个类包含属性和方法 普通成员变量 类成员变量（静态成员变量） 普通成员方法 静态成员方法

 //this
 //构造方法
 //实例化对象一共需要两部：
 //1.为对象分配内存
 //2.调用合适的构造方法，意味着构造方法不止一个
class Person{
    public String name;
    public static int a;
    private int age;
    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return this.age;
    }
    //封装 只能在当前类的内部进行使用
    //person.age会提示错误的
    //需要提供set get 方法进行使用和修改的
    //person.getAge();person.setAge();
    //成员变量不行初始化的时候对应的是默认值


    //在普通的成员方法中是不可以调用静态成员变量的
    //在普通的成员方法中是可以调用静态成员方法的
    public void sleep(){
        System.out.println("普通方法");
    }
    //在静态方法中是不可以调用普通成员变量的，也不可以调用普通成员方法
    //在静态方法中可以调用普通的局部变量
    public static void fun(){
        System.out.println("静态成员方法");
    }

}
public class TestDemo {
    public static void main2(String[] args) {
        Person person = new Person();//实例化一个对象
        person.name = " bit";
        System.out.println(person.name);
        person.sleep();
        Person.a = 10;
        Person.fun();//静态成员方法的使用
        System.out.println(Person.a);//静态成员变量类成员变量的使用 只有一份存放在方法区中
        person.setAge(18);
        System.out.println(person.getAge());
    }
    public static void main1(String[] args) {
        Person person = null;
        String str = null;
        //引用变量的赋初值
        //表示的是person不指向任何的对象
        //引用变量一定是在栈上吗？不一定，得看是不是局部变量
        //引用不能指向引用----引用指向引用所指向的对象
        //引用不能指向多个对象，只能指向一个对象
    }
}
